Flyway는 오픈소스 Database 마이그레이션 Tool이다. 참여한 각각 개발자의 Local환경, 통합환경, 테스트 환경, 그리고 운영환경 정도가 일반적인데
개발자 Local에서 구현되어 테스트 되어진 프로그램의 source code는 형상관리 tool(git, svn, etc…)을 이용하여 변경이력을 관리하고 있지만 database는 어떠한가? 각 개발자가 Local환경에서 개발시 사용되는 database의 schema 변경에 대한 마땅한 이력관리 방법이 존재하지 않는다.
즉 Local개발환경의 database 변경사항을 다른 단계의 database에 변경하려면 어쩔 수 없이 source code배포전 수동으로 처리 해야줘야 한다. 이런 수동적인 처리방법 때문에 글의 첫 부분과 같은 에피소드들이 발생하게 되는것이다.
flyway는 이런 수동관리의 불편함을 해결해주는 Tool이다....